﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Drawing;

namespace RayTracer.Environment.Materials
{
    /// <summary>
    /// Hält eine Liste von transparenten Materialien
    /// </summary>
    public static class Transparent
    {
        /// <summary>
        /// Jade (Geschliffen)
        /// </summary>
        public static Material Jade { get { return new Material(Color.FromArgb(230, 36, 56, 41), Color.FromArgb(230, 138, 227, 161), Color.FromArgb(230, 82, 82, 82), 12.8f, 0.26f, 1f, 0.1f); } }

        /// <summary>
        /// Obsidian (Bruch)
        /// </summary>
        public static Material Obsidian { get { return new Material(Color.FromArgb(204, 13, 13, 18), Color.FromArgb(204, 46, 43, 59), Color.FromArgb(204, 84, 84, 89), 38.4f, 0.28f, 1f, 0.2f); } }

        /// <summary>
        /// Perlmutt Perle
        /// </summary>
        public static Material Perle { get { return new Material(Color.FromArgb(230, 64, 54, 54), Color.FromArgb(230, 252, 212, 212), Color.FromArgb(230, 77, 77, 77), 11.3f, 1.45f, 1f, 0.05f); } }

        /// <summary>
        /// Rubin (Geschliffen)
        /// </summary>
        public static Material Rubin { get { return new Material(Color.FromArgb(128, 43, 3, 3), Color.FromArgb(128, 156, 10, 10), Color.FromArgb(128, 186, 161, 161), 76.8f, 0.28f, 1f, 0.5f); } }

        /// <summary>
        /// Smaragd (Geschliffen)
        /// </summary>
        public static Material Smaragdgrün { get { return new Material(Color.FromArgb(128, 5, 43, 5), Color.FromArgb(128, 20, 156, 20), Color.FromArgb(128, 161, 186, 161), 76.8f, 0.25f, 1f, 0.5f); } }

        /// <summary>
        /// Türkismineral
        /// </summary>
        public static Material Türkis { get { return new Material(Color.FromArgb(204, 26, 48, 43), Color.FromArgb(204, 102, 189, 176), Color.FromArgb(204, 77, 79, 79), 12.8f, 0.25f, 1f, 0.2f); } }

        /// <summary>
        /// Wasser
        /// </summary>
        public static Material Wasser { get { return new Material(Color.FromArgb(64, 50, 61, 66), Color.FromArgb(64, 100, 121, 133), Color.FromArgb(64, 75, 91, 99), 5.6f, 0.5f, 1.33f, 0.4f); } }

        /// <summary>
        /// Eiskristall
        /// </summary>
        public static Material Eis { get { return new Material(Color.FromArgb(252, 50, 61, 64), Color.FromArgb(252, 201, 242, 255), Color.FromArgb(252, 151, 182, 191), 29.9f, 0.25f, 1.31f, 0.24f); } }

        /// <summary>
        /// Glas
        /// </summary>
        public static Material Glas { get { return new Material(Color.FromArgb(13, 67, 63, 74), Color.FromArgb(13, 135, 125, 147), Color.FromArgb(13, 101, 94, 110), 89.6f, 0.5f, 1.45f, 0.85f); } }

        /// <summary>
        /// Diamant (geschliffen)
        /// </summary>
        public static Material Diamant { get { return new Material(Color.FromArgb(94, 179, 179, 179), Color.FromArgb(94, 255, 255, 255), Color.FromArgb(94, 240, 240, 240), 100f, 0.63f, 1f, 0.93f); } }
    }
}
